package com.itheima.ood.lambda.demo05;

import java.util.Random;

public class LambdaDemo {

    // 入口
    public static void main(String[] args) {

        // 去调用useRandomNumHandler这个方法
        // 1. 使用匿名内部类作为方法的参数进行调用
        useRandomNumHandler(new RandomNumHandler() {

            @Override
            public int getRandomNum() {

                // 产生一个随机数
                Random random = new Random() ;
                int nextInt = random.nextInt();

                // 返回
                return nextInt;
            }

        });

        System.out.println("---------------------------------------------");

        // 2. 使用lambda表达式进行调用
        useRandomNumHandler(() -> {

            // 产生一个随机数
            Random random = new Random() ;
            int nextInt = random.nextInt();

            // 返回
            return nextInt;

        });


    }

    /**
     * 定义一个方法，这个方法的主要作用就是去使用我们的RandomNumHandler这个接口
     * 因此我们这个方法需要定义一个RandomNumHandler的形式参数
     */
    public static void useRandomNumHandler(RandomNumHandler handler) {

        // 使用RandomNumHandler
        int randomNum = handler.getRandomNum();
        System.out.println("参数了数：" + randomNum);

    }

}
